Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
A JavaScript component for BIP32(hierarchical deterministic keys).
npm i --save hdkey
example:
var HDKey = require('hdkey')
var seed = 'a0c42a9c3ac6abf2ba6a9946ae83af18f51bf1c9fa7dacc4c92513cc4dd015834341c775dcd4c0fac73547c5662d81a9e9361a0aac604a73a321bd9103bce8af'
var hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))
console.log(hdkey.privateExtendedKey)
// => 'xprv9s21ZrQH143K2SKJK9EYRW3Vsg8tWVHRS54hAJasj1eGsQXeWDHLeuu5hpLHRbeKedDJM4Wj9wHHMmuhPF8dQ3bzyup6R7qmMQ1i1FtzNEW'
console.log(hdkey.publicExtendedKey)
// => 'xpub661MyMwAqRbcEvPmRAmYndzERhyNux1GoHzHxgzVHMBFkCro3kbbCiDZZ5XabZDyXPj5mH3hktvkjhhUdCQxie5e1g4t2GuAWNbPmsSfDp2'
HDKey.fromMasterSeed(seedBuffer[, versions])
Creates an hdkey
object from a master seed buffer. Accepts an optional versions
object.
var seed = 'a0c42a9c3ac6abf2ba6a9946ae83af18f51bf1c9fa7dacc4c92513cc4dd015834341c775dcd4c0fac73547c5662d81a9e9361a0aac604a73a321bd9103bce8af'
var hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))
HDKey.fromExtendedKey(extendedKey[, versions, skipVerification])
Creates an hdkey
object from a xprv
or xpub
extended key string. Accepts an optional versions
object & an optional skipVerification
boolean. If skipVerification
is set to true, then the provided public key's x (and y if uncompressed) coordinate will not will be verified to be on the curve.
var key = 'xprvA2nrNbFZABcdryreWet9Ea4LvTJcGsqrMzxHx98MMrotbir7yrKCEXw7nadnHM8Dq38EGfSh6dqA9QWTyefMLEcBYJUuekgW4BYPJcr9E7j'
var hdkey = HDKey.fromExtendedKey(key)
or
var key = 'xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbdpq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt'
var hdkey = HDKey.fromExtendedKey(key)
HDKey.fromJSON(obj)
Creates an hdkey
object from an object created via hdkey.toJSON()
.
hdkey.derive(path)
Derives the hdkey
at path
from the current hdkey
.
var seed = 'fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542'
var hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))
var childkey = hdkey.derive("m/0/2147483647'/1")
console.log(childkey.privateExtendedKey)
// -> "xprv9zFnWC6h2cLgpmSA46vutJzBcfJ8yaJGg8cX1e5StJh45BBciYTRXSd25UEPVuesF9yog62tGAQtHjXajPPdbRCHuWS6T8XA2ECKADdw4Ef"
console.log(childkey.publicExtendedKey)
// -> "xpub6DF8uhdarytz3FWdA8TvFSvvAh8dP3283MY7p2V4SeE2wyWmG5mg5EwVvmdMVCQcoNJxGoWaU9DCWh89LojfZ537wTfunKau47EL2dhHKon"
Newer, "hardened" derivation paths look like this:
// as defined by BIP-44
var childkey = hdkey.derive("m/44'/0'/0'/0/0");
hdkey.sign(hash)
Signs the buffer hash
with the private key using secp256k1
and returns the signature as a buffer.
hdkey.verify(hash, signature)
Verifies that the signature
is valid for hash
and the hdkey
's public key using secp256k1
. Returns true
for valid, false
for invalid. Throws if the hash
or signature
is the wrong length.
hdkey.wipePrivateData()
Wipes all record of the private key from the hdkey
instance. After calling this method, the instance will behave as if it was created via HDKey.fromExtendedKey(xpub)
.
hdkey.toJSON()
Serializes the hdkey
to an object that can be JSON.stringify()
ed.
var seed = 'fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542'
var hdkey = HDKey.fromMasterSeed(Buffer.from(seed, 'hex'))
console.log(hdkey.toJSON())
// -> {
// xpriv: 'xprv9s21ZrQH143K31xYSDQpPDxsXRTUcvj2iNHm5NUtrGiGG5e2DtALGdso3pGz6ssrdK4PFmM8NSpSBHNqPqm55Qn3LqFtT2emdEXVYsCzC2U',
// xpub: 'xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB'
// }
hdkey.privateKey
Getter/Setter of the hdkey
's private key, stored as a buffer.
hdkey.publicKey
Getter/Setter of the hdkey
's public key, stored as a buffer.
hdkey.privateExtendedKey
Getter/Setter of the hdkey
's xprv
, stored as a string.
hdkey.publicExtendedKey
Getter/Setter of the hdkey
's xpub
, stored as a string.
MIT
FAQs
Bitcoin BIP32 hierarchical deterministic keys
The npm package hdkey receives a total of 80,073 weekly downloads. As such, hdkey popularity was classified as popular.
We found that hdkey demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.